import jsonp from 'jsonp';

const parseParam = param => {
  let params = [];

  // 遍历对象param的键和值{ a:1, b:2 }，将其以数组的形式写进params的子数组[ [a,1],[b,2] ]
  for (const key in param) {
    params.push([key, param[key]]);
  }
  // map遍历，'='连接子数组内部[a=1,b=2]，'&'连接子数组与子数组 a=1&b=2
  return params.map(value => value.join('=')).join('&');
};

export default (url, data, options) => {
  // 判断url是否包不含“?”，如果不含就加上'?'，有就用'&'拼接
  url += (url.indexOf('?') < 0 ? '?' : '&') + parseParam(data);

  return new Promise((resolve, reject) => {
    // jsonp 获取数据，固定方法（(url, opts, fn）
    jsonp(url, options, (err, data) => {
      if (err) {
        reject(err);
      } else {
        resolve(data);
      }
    });
  });
};
